package com.tbit.main.service;

import com.tbit.main.pojo.GeoreMachine;
import com.tbit.main.pojo.MachineAbnormal;
import com.tbit.main.pojo.MachineStatus;

import java.util.List;
import java.util.Map;

/**
 * @author LMY
 * @create 2021-06-29 14:37
 * 运维车辆绑定
 */
public interface GeoreMachineService {


    /**
     * 根据车辆id查询绑定
     *
     * @param machineId
     * @return
     */
    GeoreMachine getByMachineId(Integer machineId);

    /**
     * 根据车辆ids查询绑定
     *
     * @param machineIds
     * @return
     */
    List<GeoreMachine> getByMachineIds(List<Integer> machineIds);

    /**
     * 批量更新
     *
     * @param georeMachinesS
     */
    void updateBatch(List<GeoreMachine> georeMachinesS);

    /**
     * 批量插入
     *
     * @param georeMachinesS
     */
    void insertBatch(List<GeoreMachine> georeMachinesS);

    /**
     * 流入
     *
     * @param regionId
     * @return
     */
    List<Map<String, Object>> intoMachine(List<Integer> regionId);

    /**
     * 流出
     *
     * @param regionId
     * @return
     */
    List<Map<String, Object>> outMachine(List<Integer> regionId);

    /**
     * 获取车辆总数
     *
     * @param regionId
     * @return
     */
    List<Map<String, Object>> getMachine(List<Integer> regionId);

    /**
     * 获取车辆总数
     *
     * @param regionId
     * @return
     */
    Integer getRegionIdMachine(Integer regionId);

    /**
     * 获取故障车辆
     *
     * @param regionId
     * @return
     */
    List<Map<String, Object>> getFault(List<Integer> regionId);

    /**
     * 获取闲置车辆
     *
     * @param regionId
     * @return
     */
    List<Map<String, Object>> getBorrow(List<Integer> regionId);

    /**
     * 获取异常车辆
     *
     * @param regionId
     * @return
     */
    List<Map<String, Object>> getAbnormal(List<Integer> regionId);

    /**
     * 获取异常车辆
     *
     * @param regionId
     * @return
     */
    List<MachineAbnormal> getRegionIdAbnormal(Integer regionId);

    /**
     * 获取缺电
     *
     * @param regionId
     * @return
     */
    List<Map<String, Object>> getPower(List<Integer> regionId, Integer accountId);

    /**
     * 获取缺电
     *
     * @param regionId
     * @return
     */
    List<MachineStatus> getRegionIdPower(Integer regionId, Integer accountId);

    /**
     * 获取不存在状态车辆
     *
     * @return
     */
    List<Integer> getNotStatus();

    /**
     * 删除不存在状态的车辆
     */
    void deleteStatus(List<Integer> machineId);

    /**
     * 获取不存在分区
     *
     * @return
     */
    List<Integer> getNotRegionId();

    /**
     * 删除不存在状态的车辆
     */
    void deleteRegionId(List<Integer> regionIds);

    /**
     * 获取所有
     *
     * @return
     */
    List<Map<String, Object>> getAll();
}
